package com.juyu.miliao.common.util;


import com.juyu.miliao.common.constant.ResultConstant;
import com.juyu.miliao.common.domain.Result;

/**
 * 统一请求返回结果工具类
 *
 * @author jh
 */
public class ResultUtil {

	/**
	 * 请求成功<br>
	 * default code: 2000<br>
	 * default msg: 请求成功<br>
	 * default data: ""
	 *
	 * @return Result
	 */
	public static <T> Result<T> success() {
		return success(null);
	}

	/**
	 * 请求成功<br>
	 * default code: 2000<br>
	 * default msg: 请求成功
	 *
	 * @param data 数据集合
	 * @return Result
	 */
	public static <T> Result<T> success(T data) {
		return success(ResultConstant.SUCCESS_MSG, data);
	}

	/**
	 * 请求成功<br>
	 * default code: 2000
	 *
	 * @param data 数据集合
	 * @return Result
	 */
	public static <T> Result<T> success(String msg, T data) {
		return new Result<>(ResultConstant.SUCCESS_CODE, msg, data);
	}

	/**
	 * 请求失败
	 *
	 * @param code 失败返回码
	 * @param msg  失败消息
	 * @return Result
	 */
	public static <T> Result<T> error(int code, String msg) {
		return error(code, msg, null);
	}

	/**
	 * 请求失败
	 *
	 * @param code 失败返回码
	 * @param msg  失败消息
	 * @param data 数据集合
	 * @return Result
	 */
	public static <T> Result<T> error(int code, String msg, T data) {
		return new Result<>(code, msg, data);
	}
}
